<template>
	<el-card shadow="never" ref="mainHome" class="aui-card--fill">
		<div class="mod-home">
			<el-row>
				<el-col :span="24">
					<div class="home-header">{{ stationName }}</div>
				</el-col>
			</el-row>
			<el-row>
				<el-col :span="16">
					<div class="home-tuli">
						<div class="homeTuTxt">图例</div>
						<div class="homeTuSt">
							<span class="homeTuSt1">有效状态</span>
							<span class="homeTuSt2">无动作</span>
						</div>
						<div class="homeTuStList" style="width: 85%;margin-left: 0.5vw;">
							<ul style="width: 100%;">
								<li class="homeTuStListLi" v-for="item in homeTuStListAll">
									<img :src="item.imgUrl" />
									<span>{{ item.name }}</span>
								</li>
							</ul>
						</div>
					</div>
				</el-col>
				<el-col :span="8">
					<div class="home-tuli home-tuli1">
						<div class="homeTuTxt homeTuTxt1">电源故障</div>
						<div class="homeDY">
							<ul>
								<li v-for="(item, index) in homeDianList"
									:class="item.status == 1 ? 'active' : item.status == 0 ? 'IBPactive' : ''">
									<span>{{ item.name }}</span>
								</li>
							</ul>
						</div>
					</div>
				</el-col>
			</el-row>

			<el-row>
				<el-col :span="24">
					<div class="homeSH">
						<h3 class="homeSHTxt">上行 <span v-if="upStatus">({{ upStatus }})</span></h3>
						<div class="homeSH1" v-if="doorList.length !== 0">
							<div class="homeSH2"
								:style="doorList.length < 17 ? { width: 100 / (doorList.length) + '%' } : { width: 100 / avaNum + '%' }"
								v-for="(item, index) in doorList"
								:class="[index >= avaNum && doorList.length >= 17 ? 'door1' : '', item.dcu == 0 ? 'opcity1' : '']"
								@mouseenter="doorHover(item, index, 1)" @mousemove="updateXY"
								@mouseleave="doorLeave(item, index, 1)" @click="doorInfo(item.dcu, item.doorType, 1)">
								<span>{{ item.dcu }}</span>
								<el-badge
									:value="item.statusG == 1 ? item.statusGNum : item.status == 1 && item.statusNum !== 0 ? item.statusNum : ''"
									:class="item.statusG == 1 ? 'item' : item.status == 1 && item.statusG == 0 ? 'item1' : ''">
									<div v-if="item.statusZ == 0"> <!--最高等级的下标是开门到位 -->
										<img src="@/assets/img/kaimendaowei.png" />
									</div>
									<div v-if="item.statusZ == 1"> <!--最高等级的下标是关门到位 -->
										<img src="@/assets/img/guanbidaowei.png" />
									</div>
									<div v-if="item.statusZ == 2"> <!--最高等级的下标是关闭锁紧 -->
										<img src="@/assets/img/guanbisuojin.png" />
									</div>
									<div v-if="item.statusZ == 3"> <!--最高等级的下标是手动锁紧 -->
										<img src="@/assets/img/shoudong.png" />
									</div>
									<div v-if="item.statusZ == 4"> <!--最高等级的下标是LCB隔离 -->
										<img src="@/assets/img/LCB.png" />
									</div>
									<div v-if="item.statusZ == 5"> <!--最高等级的下标是关门过程中 -->
										<img src="@/assets/img/guanmenguocheng.png" />
									</div>
									<div v-if="item.statusZ == 6"> <!--最高等级的下标是开门过程中 -->
										<img src="@/assets/img/kaimenguocheng.png" />
									</div>
									<div v-if="item.statusZ == 7 && item.statusG == 0 && item.asdOpenBlock == 0">
										<!--最高等级的下标是开门遇阻并且不存在故障和开门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 8 && item.statusG == 0 && item.asdCloseBlock == 0">
										<!--最高等级的下标是关门遇阻并且不存在故障和关门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 7 && item.statusG == 1 && item.asdOpenBlock == 0">
										<!--最高等级的下标是开门遇阻并且存在故障和开门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 8 && item.statusG == 1 && item.asdCloseBlock == 0">
										<!--最高等级的下标是关门遇阻并且存在故障和关门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 7 && item.statusG == 1 && item.asdOpenBlock == 1">
										<!--最高等级的下标是开门遇阻并且存在故障并且开门遇阻是1-->
										<img src="@/assets/img/kmyz.png" />
									</div>
									<div v-if="item.statusZ == 8 && item.statusG == 1 && item.asdCloseBlock == 1">
										<!--最高等级的下标是关门遇阻并且存在故障并且关门遇阻是1-->
										<img src="@/assets/img/gmyz.png" />
									</div>
									<div v-if="item.doorType == 0 && item.statusZ == null && item.status == null">
										<!--端门初始-->
										<img src="@/assets/img/duanmen.png" />
									</div>
									<div v-if="item.doorType == 0 && item.statusZ == null && item.status == 0">
										<!--端门显示锁闭-->
										<img src="@/assets/img/duanmen1.png" />
									</div>
									<div v-if="item.doorType == 0 && item.statusZ == null && item.status == 1">
										<!--端门显示未锁闭 -->
										<img src="@/assets/img/dmgz.png" />
									</div>
									<div v-if="item.doorType == 1 && item.statusZ == null"> <!--滑动门没有推送数据-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<!-- 全高应急门左右 -->
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && (item.statuslf == 0 && item.statusrg == 0 || item.statuslf == null)">
										<!--应急门没有推送数据-->
										<img src="@/assets/img/yjm.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && item.statuslf == 1 && item.statusrg == 1">
										<!--应急门左右都未锁闭-->
										<img src="@/assets/img/yjqgz.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && item.statuslf == 1 && item.statusrg == 0">
										<!--应急门左门未锁闭-->
										<img src="@/assets/img/leftdoor.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && item.statuslf == 0 && item.statusrg == 1">
										<!--应急门右门未锁闭-->
										<img src="@/assets/img/rightdoor.png" />
									</div>
									<!-- 半高应急门不分左右-->
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 1 && ((item.statuslf == 0 && item.statusrg == 0) || item.statuslf == null)">
										<!--应急门没有推送数据-->
										<img src="@/assets/img/yjmbg.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 1 && (item.statuslf == 1 || item.statusrg == 1)">
										<!--应急门未锁闭-->
										<img src="@/assets/img/yjbgz.png" />
									</div>
								</el-badge>
							</div>
						</div>
						<div class="homeSH1" v-else>
							<div class="homeSH2"
								style="width: 100%;font-size: 16px;font-weight: 600;color:rgba(166, 166, 166, 1)">
								本站暂无门配置信息
							</div>
						</div>
					</div>
				</el-col>
			</el-row>
			<el-row>
				<el-col :span="24">
					<div class="homeSH homeSHM">
						<div class="homeTuTxt">上行命令</div>
						<div class="homeTuStList">
							<div class="homeTuStList1">
								<p class="homeTuStList11">IBP命令</p>
								<el-popover v-if="IBPWaringContent" popper-class="homePoper" placement="top-start"
									width="200" trigger="hover" :visible-arrow="false" :content="IBPWaringContent">
									<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
								</el-popover>
								<div class="homeTuStList12">
									<div class="homeTuStList13"
										:class="[item.status == 0 ? '' : item.status == 1 ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew2' : '']"
										v-for="(item, index) in IBPList">
										{{ item.name }}
									</div>
								</div>
							</div>
							<div class="homeTuStList2 " :class="pslNum == 3 ? 'PSLW' : ''" v-for="(item, val) in pslNum">
								<div style="height: 100%;" v-if="item == 1">
									<p class="homeTuStList11">PSL{{ item }}命令</p>
									<el-popover v-if="PSLWaringContent1" popper-class="homePoper" placement="top-start"
										width="200" trigger="hover" :visible-arrow="false" :content="PSLWaringContent1">
										<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
									</el-popover>
									<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
										<button class="homeTuStList13 PSLBtn"
											:class="[item.status == 0 ? '' : item.status == 1 && (index == 0 || index == 2 || index == 4) ? 'IBPactive' : item.status == 1 && (PSLList1Up[0].status == 1 || PSLList1Up[2].status == 1) && (index == 1 || index == 3 || index == 5) ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew' : '']"
											v-for="(item, index) in PSLList1Up">
											{{ item.name }}
										</button>
									</div>
								</div>
								<div style="height: 100%;" v-if="item == 2">
									<p class="homeTuStList11">PSL{{ item }}命令</p>
									<el-popover v-if="PSLWaringContent2" popper-class="homePoper" placement="top-start"
										width="200" trigger="hover" :visible-arrow="false" :content="PSLWaringContent2">
										<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
									</el-popover>
									<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
										<button class="homeTuStList13 PSLBtn"
											:class="[item.status == 0 ? '' : item.status == 1 && (index == 0 || index == 2 || index == 4) ? 'IBPactive' : item.status == 1 && (PSLList2Up[0].status == 1 || PSLList2Up[2].status == 1) && (index == 1 || index == 3 || index == 5) ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew' : '']"
											v-for="(item, index) in PSLList2Up">
											{{ item.name }}
										</button>
									</div>
								</div>
								<div style="height: 100%;" v-if="item == 3">
									<p class="homeTuStList11">PSL{{ item }}命令</p>
									<el-popover v-if="PSLWaringContent3" popper-class="homePoper" placement="top-start"
										width="200" trigger="hover" :visible-arrow="false" :content="PSLWaringContent3">
										<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
									</el-popover>
									<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
										<button class="homeTuStList13 PSLBtn"
											:class="[item.status == 0 ? '' : item.status == 1 && (index == 0 || index == 2 || index == 4) ? 'IBPactive' : item.status == 1 && (PSLList3Up[0].status == 1 || PSLList3Up[2].status == 1) && (index == 1 || index == 3 || index == 5) ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew' : '']"
											v-for="(item, index) in PSLList3Up">
											{{ item.name }}
										</button>
									</div>
								</div>
							</div>
							<div class="homeTuStList1 homeTuStList3" :class="pslNum == 3 ? 'SIGWidth' : ''">
								<p class="homeTuStList11">SIG命令</p>
								<div class="homeTuStList12 SIGList" :class="pslNum == 3 ? 'PSL12' : ''">
									<button class="homeTuStList13 PSLBtn"
										:class="[item.status == 0 ? '' : item.status == 1 ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew1' : '']"
										v-for="(item, index) in SIGList">
										{{ item.name }}
									</button>
								</div>
							</div>
							<div class="homeTuStList2" :class="pslNum == 3 ? 'PSCWidth' : 'PSCWidth1'">
								<p class="homeTuStList11">PSC信息</p>
								<el-popover v-if="PSCWaringContent" popper-class="homePoper" placement="top-start"
									width="200" trigger="hover" :visible-arrow="false" :content="PSCWaringContent">
									<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
								</el-popover>
								<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
									<button class="homeTuStList13 PSLBtn"
										@click="(item.status == 1 && index == 3) && safeContentShow(index, 0)"
										:class="[item.status == 0 && index !== 3 && index !== 4 && index !== 5 ? '' : item.status == 1 && index !== 3 && index !== 4 && index !== 5 ? 'IBPactive' : '', (item.status == 0 && index == 3) || (item.status == 0 && index == 4) || (item.status == 0 && index == 5) ? 'IBPactive' : (item.status == 1 && index == 3) || (item.status == 1 && index == 4) || (item.status == 1 && index == 5) ? 'active' : '', item.status == 1 && index == 3 ? 'safeBtn' : '', pslNum == 3 ? 'PSLNew3' : '']"
										v-for="(item, index) in PSCList">
										{{ item.name }}
									</button>
								</div>
							</div>
						</div>
					</div>
				</el-col>
			</el-row>
			<el-row>
				<el-col :span="24">
					<div class="homeSH">
						<h3 class="homeSHTxt">下行 <span v-if="downStatus">({{ downStatus }})</span></h3>
						<div class="homeSH1" v-if="doorListDown.length !== 0">
							<div class="homeSH2"
								:style="doorListDown.length < 17 ? { width: 100 / (doorListDown.length) + '%' } : { width: 100 / avaNumD + '%' }"
								v-for="(item, index) in doorListDown"
								:class="[index >= avaNumD && doorListDown.length >= 17 ? 'door1' : '', item.dcu == 0 ? 'opcity1' : '']"
								@mouseenter="doorHover(item, index, 0)" @mouseleave="doorLeave(item, index, 0)"
								@mousemove="updateXY" @click="doorInfo(item.dcu, item.doorType, 0)">
								<span>{{ item.dcu }}</span>
								<el-badge
									:value="item.statusG == 1 ? item.statusGNum : item.status == 1 && item.statusNum !== 0 ? item.statusNum : ''"
									:class="item.statusG == 1 ? 'item' : item.status == 1 && item.statusG == 0 ? 'item1' : ''">
									<div v-if="item.statusZ == 0">
										<img src="@/assets/img/kaimendaowei.png" />
									</div>
									<div v-if="item.statusZ == 1">
										<img src="@/assets/img/guanbidaowei.png" />
									</div>
									<div v-if="item.statusZ == 2">
										<img src="@/assets/img/guanbisuojin.png" />
									</div>
									<div v-if="item.statusZ == 3">
										<img src="@/assets/img/shoudong.png" />
									</div>
									<div v-if="item.statusZ == 4">
										<img src="@/assets/img/LCB.png" />
									</div>
									<div v-if="item.statusZ == 5">
										<img src="@/assets/img/guanmenguocheng.png" />
									</div>
									<div v-if="item.statusZ == 6">
										<img src="@/assets/img/kaimenguocheng.png" />
									</div>
									<div v-if="item.statusZ == 7 && item.statusG == 0 && item.asdOpenBlock == 0">
										<!--最高等级的下标是开门遇阻并且不存在故障和开门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 8 && item.statusG == 0 && item.asdCloseBlock == 0">
										<!--最高等级的下标是关门遇阻并且不存在故障和关门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 7 && item.statusG == 1 && item.asdOpenBlock == 0">
										<!--最高等级的下标是开门遇阻并且存在故障和开门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 8 && item.statusG == 1 && item.asdCloseBlock == 0">
										<!--最高等级的下标是关门遇阻并且存在故障和关门遇阻是0-->
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<div v-if="item.statusZ == 7 && item.statusG == 1 && item.asdOpenBlock == 1">
										<!--最高等级的下标是开门遇阻并且存在故障并且开门遇阻是1-->
										<img src="@/assets/img/kmyz.png" />
									</div>
									<div v-if="item.statusZ == 8 && item.statusG == 1 && item.asdCloseBlock == 1">
										<!--最高等级的下标是关门遇阻并且存在故障并且关门遇阻是1-->
										<img src="@/assets/img/gmyz.png" />
									</div>
									<div
										v-if="item.doorType == 0 && item.statusZ == null && (item.status == 0 || item.status == null)">
										<img src="@/assets/img/duanmen.png" />
									</div>
									<div v-if="item.doorType == 0 && item.statusZ == null && item.status == 1">
										<img src="@/assets/img/dmgz.png" />
									</div>
									<div v-if="item.doorType == 1 && item.statusZ == null">
										<img src="@/assets/img/guanbidaowei1.png" />
									</div>
									<!-- 全高应急门设置 -->
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && (item.statuslf == 0 && item.statusrg == 0 || item.statuslf == null)">
										<!--全高左右无故障和为空值-->
										<img src="@/assets/img/yjm.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && item.statuslf == 1 && item.statusrg == 1">
										<!--全高左右都有故障-->
										<img src="@/assets/img/yjqgz.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && item.statuslf == 1 && item.statusrg == 0">
										<!--全高左有故障右无故障-->
										<img src="@/assets/img/leftdoor.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 0 && item.statuslf == 0 && item.statusrg == 1">
										<!--全高左无故障右有故障-->
										<img src="@/assets/img/rightdoor.png" />
									</div>
									<!-- 半高应急门设置 -->
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 1 && ((item.statuslf == 0 && item.statusrg == 0) || item.statuslf == null)">
										<img src="@/assets/img/yjmbg.png" />
									</div>
									<div
										v-if="item.doorType == 2 && item.statusZ == null && item.type == 1 && (item.statuslf == 1 || item.statusrg == 1)">
										<img src="@/assets/img/yjbgz.png" />
									</div>
								</el-badge>
							</div>
						</div>
						<div class="homeSH1" v-else>
							<div class="homeSH2"
								style="width: 100%;font-size: 16px;font-weight: 600;color:rgba(166, 166, 166, 1)">
								本站暂无门配置信息
							</div>
						</div>
					</div>
				</el-col>
			</el-row>
			<el-row>
				<el-col :span="24">
					<div class="homeSH homeSHM">
						<div class="homeTuTxt">下行命令</div>
						<div class="homeTuStList">
							<div class="homeTuStList1">
								<p class="homeTuStList11">IBP命令</p>
								<el-popover v-if="IBPWaringContentDown" popper-class="homePoper" placement="top-start"
									width="200" trigger="hover" :visible-arrow="false" :content="IBPWaringContentDown">
									<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
								</el-popover>
								<div class="homeTuStList12">
									<div class="homeTuStList13" v-for="item in IBPList1"
										:class="[item.status == 0 ? '' : item.status == 1 ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew2' : '']">
										{{ item.name }}
									</div>
								</div>
							</div>
							<div class="homeTuStList2" :class="pslNum == 3 ? 'PSLW' : ''" v-for="item in pslNum">
								<div style="height: 100%;" v-if="item == 1">
									<p class="homeTuStList11">PSL{{ item }}命令</p>
									<el-popover v-if="PSLWaringContentDown1" popper-class="homePoper" placement="top-start"
										width="200" trigger="hover" :visible-arrow="false" :content="PSLWaringContentDown1">
										<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
									</el-popover>
									<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
										<div class="homeTuStList13" v-for="(item, index) in PSLList1Down"
											:class="[item.status == 0 ? '' : item.status == 1 && (index == 0 || index == 2 || index == 4) ? 'IBPactive' : item.status == 1 && (PSLList1Down[0].status == 1 || PSLList1Down[2].status == 1) && (index == 1 || index == 3 || index == 5) ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew' : '']">
											{{ item.name }}
										</div>
									</div>
								</div>
								<div style="height: 100%;" v-if="item == 2">
									<p class="homeTuStList11">PSL{{ item }}命令</p>
									<el-popover v-if="PSLWaringContentDown2" popper-class="homePoper" placement="top-start"
										width="200" trigger="hover" :visible-arrow="false" :content="PSLWaringContentDown2">
										<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
									</el-popover>
									<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
										<div class="homeTuStList13" v-for="(item, index) in PSLList2Down"
											:class="[item.status == 0 ? '' : item.status == 1 && (index == 0 || index == 2 || index == 4) ? 'IBPactive' : item.status == 1 && (PSLList2Down[0].status == 1 || PSLList2Down[2].status == 1) && (index == 1 || index == 3 || index == 5) ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew' : '']">
											{{ item.name }}
										</div>
									</div>
								</div>
								<div style="height: 100%;" v-if="item == 3">
									<p class="homeTuStList11">PSL{{ item }}命令</p>
									<el-popover v-if="PSLWaringContentDown3" popper-class="homePoper" placement="top-start"
										width="200" trigger="hover" :visible-arrow="false" :content="PSLWaringContentDown3">
										<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
									</el-popover>
									<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
										<div class="homeTuStList13" v-for="(item, index) in PSLList3Down"
											:class="[item.status == 0 ? '' : item.status == 1 && (index == 0 || index == 2 || index == 4) ? 'IBPactive' : item.status == 1 && (PSLList3Down[0].status == 1 || PSLList3Down[2].status == 1) && (index == 1 || index == 3 || index == 5) ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew' : '']">
											{{ item.name }}
										</div>
									</div>
								</div>
							</div>
							<div class="homeTuStList1 homeTuStList3" :class="pslNum == 3 ? 'SIGWidth' : ''">
								<p class="homeTuStList11">SIG命令</p>
								<div class="homeTuStList12 SIGList" :class="pslNum == 3 ? 'PSL12' : ''">
									<div class="homeTuStList13" v-for="item in SIGList1"
										:class="[item.status == 0 ? '' : item.status == 1 ? 'IBPactive' : '', pslNum == 3 ? 'PSLNew1' : '']">
										{{ item.name }}
									</div>
								</div>
							</div>
							<div class="homeTuStList2" :class="pslNum == 3 ? 'PSCWidth' : 'PSCWidth1'">
								<p class="homeTuStList11">PSC信息</p>
								<el-popover v-if="PSCWaringContentDown" popper-class="homePoper" placement="top-start"
									width="200" trigger="hover" :visible-arrow="false" :content="PSCWaringContentDown">
									<img slot="reference" class="homewarn" src="@/assets/img/warn.png" />
								</el-popover>
								<div class="homeTuStList12" :class="pslNum == 3 ? 'PSL12' : ''">
									<div class="homeTuStList13"
										@click="(item.status == 1 && index == 3) && safeContentShow(index, 1)"
										v-for="(item, index) in PSCList1"
										:class="[item.status == 0 && index !== 3 && index !== 4 && index !== 5 ? '' : item.status == 1 && index !== 3 && index !== 4 && index !== 5 ? 'IBPactive' : '', (item.status == 0 && index == 3) || (item.status == 0 && index == 4) || (item.status == 0 && index == 5) ? 'IBPactive' : (item.status == 1 && index == 3) || (item.status == 1 && index == 4) || (item.status == 1 && index == 5) ? 'active' : '', item.status == 1 && index == 3 ? 'safeBtn' : '', pslNum == 3 ? 'PSLNew3' : '']">
										{{ item.name }}
									</div>
								</div>
							</div>
						</div>
					</div>
				</el-col>
			</el-row>
		</div>
		<div class="doorBaseInfo" v-if="doorStatus" :style="sty" @mouseenter="tanchuangmouse" @mouseout="tanchuangmouse1">
			<div class="doorBaseInfoH">
				<div><span class="doorBaseInfoH1">DCU编号：</span><span class="doorBaseInfoH2">{{ doorNum }}</span></div>
				<div><span>站台侧：</span><span>{{ doorDe }}</span></div>
			</div>
			<div class="doorBaseInfoC">
				<div class="doorBaseInfolf" v-if="Tstatus">
					<div v-for="(item, index) in doorBaseInfoC1"
						:class="[item.status == 0 ? '' : item.status == 1 ? 'doorBaseInfoNA' : '']" class="doorBaseInfoN1" :style="index=='5'||index=='6'?'opacity:0;width:0;padding:0':''">
						{{ item.name }}</div>
				</div>
				<div class="doorBaseInfoRg" v-if="Gstatus">
					<div v-for="(item, index) in doorBaseInfoC2"
						:class="item.status == 2 ? 'doorBaseInfoNB' : downStatus == '全高' ? 'doorBaseInfoNG1' : ''"
						class="doorBaseInfoN1 doorBaseInfoNG">
						<span v-if="downStatus == '全高' && index == 4">电磁锁故障</span>
						<span v-else>{{ item.name }}</span>
					</div>
				</div>
				<!-- 端门显示 -->
				<div class="doorBaseInfolf" v-if="dmStatus">
					<div v-if="dm1Status == 0" class="doorBaseInfoN1 doorBaseInfoNA">锁闭</div>
					<div v-if="dm1Status == 1" class="doorBaseInfoN1 doorBaseInfoNB">未锁闭</div>
				</div>
				<!-- 应急门显示 -->
				<div class="doorBaseInfolf" v-if="yjStatus">
					<div v-if="downStatus == '半高'" style="width: 100%;">
						<div style="margin-bottom: 10px;">
							<div v-if="yjStatus1 == 0" class="doorBaseInfoN1 doorBaseInfoNA">锁闭</div>
							<div v-if="yjStatus1 == 1" class="doorBaseInfoN1 doorBaseInfoNB">未锁闭</div>
						</div>
						<div class="doorBaseInfoN1"
							:class="yjmplStatus == 0 ? '' : yjmplStatus == 1 ? 'doorBaseInfoNA' : ''">
							应急门旁路状态</div>
					</div>
					<div v-if="downStatus == '全高'" style="width: 100%;">
						<div style="width: 100%;display:flex;align-items: center;">
							<div class="doorBaseInfoNTxt">左</div>
							<div v-if="yjStatus1 == 0" class="doorBaseInfoN1 doorBaseInfoNA">锁闭</div>
							<div v-if="yjStatus1 == 1" class="doorBaseInfoN1 doorBaseInfoNB">未锁闭</div>
							<div class="doorBaseInfoNTxt">右</div>
							<div v-if="yjStatus2 == 0" class="doorBaseInfoN1 doorBaseInfoNA">锁闭</div>
							<div v-if="yjStatus2 == 1" class="doorBaseInfoN1 doorBaseInfoNB">未锁闭</div>
						</div>
						<div class="doorBaseInfoN1" style="width: 100%;margin-top: 10px;"
							:class="yjmplStatus == 0 ? 'doorBaseInfoNA' : yjmplStatus == 1 ? 'doorBaseInfoNB' : ''">应急门旁路状态
						</div>
					</div>
				</div>
			</div>
		</div>
		<div class="tipContent" v-if="tipStatus">
			<div class="tipsTxt">
				<div class="merquee">
					<span class="merquee-txt">{{ msg }}</span>
				</div>
				<!-- {{msg}} -->
				<!-- <marquee id="msg11" :val="msg"></marquee> -->
			</div>
		</div>
		<!-- 安全回路的弹窗显示 -->
		<safeContent v-if="safeStatus" ref="safeContent" :safeList="doorListSafe" :safeListNew="doorListDownSafe">
		</safeContent>
	</el-card>
</template>
<script>
import utils from '@/utils/utils'
import Cookies from 'js-cookie'
import safeContent from './safeContent.vue'
export default {
	inject: ["reload"],
	components: {
		safeContent
	},
	data() {
		return {
			stationName: Cookies.get('lineStationName'), //首页头部显示
			upStatus: '', //上行全高还是半高
			downStatus: '', //下行全高还是半高
			pslNum: Number(Cookies.get('pslNum')),
			homeTuStListAll: utils.homeTuStListAll,
			homeDianList: utils.homeDianList,
			activeIndex: 0,
			Tstatus: false, //状态显示
			Gstatus: false, //故障显示
			dmStatus: false, //端门显示
			dm1Status: -1, //端门的状态值
			yjStatus: false, //应急门的显示
			yjStatus1: -1, //应急门的状态值
			yjStatus2: -1, //应急门的状态值
			doorStatus: false, //故障显示弹窗
			doorList: [], //上行
			doorListDown: [], //下行
			avaNum: '', //数组的平均值
			avaNumD: '', //下行的数组的平均值
			IBPList: utils.IBPList,
			IBPList1: utils.IBPList1,
			PSLList1Up: utils.PSLList1Up,
			PSLList2Up: utils.PSLList2Up,
			PSLList3Up: utils.PSLList3Up,
			PSLList1Down: utils.PSLList1Down,
			PSLList2Down: utils.PSLList2Down,
			PSLList3Down: utils.PSLList3Down,
			PSCList: utils.PSCList,
			PSCList1: utils.PSCList1,
			SIGList: utils.SIGList,
			SIGList1: utils.SIGList1,
			doorNum: '', //门的数量
			doorDe: '',
			doorBaseInfoC1: [],
			doorBaseInfoC2: utils.doorBaseInfoC2,
			doorIndex: '', //当前门的下标
			doorDeNum: -1, //当前弹窗门的方向
			mouse_x: '', //鼠标的x轴
			mouse_y: '', //鼠标的y轴
			sty: {
				top: '',
				left: ''
			}, //门弹窗的位置
			tipStatus: false, //psc显示
			msg: '',
			yjNum: '', //应急门的数量
			IBPWaringContent: '', //IBP的预警--上行
			IBPWaringContentDown: '', //IBP的预警----下行
			PSLWaringContent1: '', //PSL1命令的预警-----上行
			PSLWaringContent2: '', //PSL2命令的预警-----上行
			PSLWaringContent3: '', //PSL3命令的预警-----上行
			PSLWaringContentDown1: '', //PSL1命令的预警-----下行
			PSLWaringContentDown2: '', //PSL2命令的预警-----下行
			PSLWaringContentDown3: '', //PSL3命令的预警-----下行
			PSCWaringContent: '', //PSC命令----上行
			PSCWaringContentDown: '', //PSC命令的预警----下行
			yjmplStatus: -1, //应急门旁路状态
			yjmplStatus1: -1, //应急门旁路状态----右门
			dialogStatus: false, //鼠标是否滑过
			safeStatus: false,//安全回路的弹窗显示
			doorListSafe: [],
			doorListDownSafe: [],
			stepUp:0,//上行门的step值
			stepDown:0,//下行门的step值
		}
	},
	activated() {
		this.init()
	},
	mounted() {
		window.addEventListener('onmessageWS', this.getSocketData)
	},
	destroyed() {
		window.removeEventListener('onmessageWS', this.getSocketData)
	},
	watch: {
		//监听数组的变化，从而弹窗的灯变化
		doorList: {
			handler(newval, oldval) {
				if (this.doorDeNum == 1 && newval[this.doorIndex].doorType == 1) {
					this.dmStatus = false
					this.yjStatus = false
					if (newval[this.doorIndex] !== undefined && newval[this.doorIndex].statusG == 1) {
						// 故障显示
						this.Gstatus = true
						this.Tstatus = false
						if (newval[this.doorIndex].statusGList !== undefined && newval[this.doorIndex].statusGList
							.length !== 0) {
							//重新赋值
							this.doorBaseInfoC2.forEach(item => {
								item.status = 0
							})
							newval[this.doorIndex].statusGList.forEach(itemG => {
								this.$set(this.doorBaseInfoC2[itemG.statusGIndex], 'status', 2);
							})
						}
					} else {
						this.Gstatus = false
						this.Tstatus = true
						if (newval[this.doorIndex].statusList !== undefined && newval[this.doorIndex].statusList
							.length !== 0) {
							//重新赋值
							this.doorBaseInfoC1.forEach(item => {
								item.status = 0
							})
							newval[this.doorIndex].statusList.forEach(item => {
								this.doorBaseInfoC1.forEach((val, index) => {
									if (item.statusZ == val.key && item.statusZ !== 7 && item
										.statusZ !== 8) {
										this.$set(this.doorBaseInfoC1[index], 'status', 1);
										// this.doorBaseInfoC1[index].status = 1
									} else if (item.statusZ == val.key && (item.statusZ == 7 || item
										.statusZ == 8)) {
										this.$set(this.doorBaseInfoC1[index], 'status', 0);
									}
								})
							})
						}
					}
				} else if (this.doorDeNum == 1 && newval[this.doorIndex].doorType == 0) {
					//端门数组的变化
					this.dmStatus = true
					this.yjStatus = false
					this.Gstatus = false
					this.Tstatus = false
					this.dm1Status = newval[this.doorIndex].status
				} else if (this.doorDeNum == 1 && newval[this.doorIndex].doorType == 2) {
					//应急门数组的变化
					this.dmStatus = false
					this.yjStatus = true
					this.Gstatus = false
					this.Tstatus = false
					this.yjStatus1 = newval[this.doorIndex].statuslf
					this.yjStatus2 = newval[this.doorIndex].statusrg
					this.yjmplStatus = newval[this.doorIndex].statusyjmpl
				}

			},
			deep: true,
		},
		doorListDown: {
			handler(newval, oldval) {
				if (this.doorDeNum == 0 && newval[this.doorIndex].doorType == 1) {
					this.dmStatus = false
					this.yjStatus = false
					if (newval[this.doorIndex] !== null && newval[this.doorIndex].statusG == 1) {
						// 故障显示
						this.Gstatus = true
						this.Tstatus = false
						if (newval[this.doorIndex].statusGList !== undefined && newval[this.doorIndex].statusGList
							.length !== 0) {
							//重新赋值
							this.doorBaseInfoC2.forEach(item => {
								item.status = 0
							})
							newval[this.doorIndex].statusGList.forEach(itemG => {
								this.$set(this.doorBaseInfoC2[itemG.statusGIndex], 'status', 2);
							})
						}
					} else {
						this.Gstatus = false
						this.Tstatus = true
						if (newval[this.doorIndex].statusList !== undefined && newval[this.doorIndex].statusList
							.length !== 0) {
							//重新赋值
							this.doorBaseInfoC1.forEach(item => {
								item.status = 0
							})
							newval[this.doorIndex].statusList.forEach(item => {
								this.doorBaseInfoC1.forEach((val, index) => {
									if (item.statusZ == val.key && item.statusZ !== 7 && item
										.statusZ !== 8) {
										this.$set(this.doorBaseInfoC1[index], 'status', 1);
										// this.doorBaseInfoC1[index].status = 1
									} else if (item.statusZ == val.key && (item.statusZ == 7 || item
										.statusZ == 8)) {
										this.$set(this.doorBaseInfoC1[index], 'status', 0);
									}
								})
							})
						}
					}
				} else if (this.doorDeNum == 0 && newval[this.doorIndex].doorType == 0) {
					//端门数组的变化
					this.dmStatus = true
					this.yjStatus = false
					this.Gstatus = false
					this.Tstatus = false
					this.dm1Status = newval[this.doorIndex].status
				} else if (this.doorDeNum == 0 && newval[this.doorIndex].doorType == 2) {
					//应急门数组的变化
					this.dmStatus = false
					this.yjStatus = true
					this.Gstatus = false
					this.Tstatus = false
					this.yjStatus1 = newval[this.doorIndex].statuslf
					this.yjStatus2 = newval[this.doorIndex].statusrg
					this.yjmplStatus = newval[this.doorIndex].statusyjmpl
				}
			},
			deep: true,
		}
	},
	methods: {
		//获取系统的初始状态值
		init() {
			//获取系统信息
			var p = new Promise((resolve, reject) => {
				this.getSystemData(() => {
					resolve()
				})
			})
			var p0 = new Promise((resolve, reject) => {
				this.getdoorList(() => {
					resolve()
				})
			})
			Promise.all([p, p0]).then(() => {
				this.handleMsg();
			})
		},
		//获取系统信息
		getSystemData(callback) {
			this.$http.get(`/psc/systemshow/getSimpleInfo`).then(res => {
				if (res.data.code == 0) {
					Cookies.set('systemname', res.data.data.name)
					Cookies.set('background', res.data.data.background)
					Cookies.set('lineStationName', res.data.data.lineName + res.data.data.stationName)
					Cookies.set('pslNum', res.data.data.pslNum)
					this.stationName = res.data.data.lineName + res.data.data.stationName
					callback()
				}
			})
		},
		// 获取门的信息
		getdoorList(callback) {
			this.doorListSafe = []
			this.doorListDownSafe = []
			this.$http.get('/psc/door/getDoor').then(res => {
				this.doorList = res.data.data.up
				this.doorListDown = res.data.data.down
				//获取上下行数据要增加和减少的值-----2023年5月26日
				this.stepUp  = Number(this.doorList[1].dcu) - 1
				this.stepDown = Number(this.doorListDown[this.doorListDown.length-2].dcu) - 1
				// console.log( this.stepUp,this.stepDown,'上下行的step的值')
				//获取上下行数据要增加和减少的值-----2023年5月26日
				// 安全回路的数据// 2023年4月21新增
				res.data.data.up.forEach(item => {
					if (item.doorType == 1) {
						var obj = {
							dcu: item.dcu,
							collection1: -1,
							collection2: -1,
						}
						this.doorListSafe.push(obj)
					}
				})
				res.data.data.down.forEach(item => {
					if (item.doorType == 1) {
						var obj = {
							dcu: item.dcu,
							collection1: -1,
							collection2: -1,
						}
						this.doorListDownSafe.push(obj)
					}
				})
				// 2023年4月21新增
				if(this.doorList[0]){
					Cookies.set('type', this.doorList[0].type)
					if (this.doorList[0].type == 0 && this.doorList[0].stationSide == 1) {
						this.upStatus = '全高'
					} else if (this.doorList[0].type == 1 && this.doorList[0].stationSide == 1) {
						this.upStatus = '半高'
					}
				}
				if(this.doorListDown[0]){
					if (this.doorListDown[0].type == 0 && this.doorListDown[0].stationSide == 0) {
						this.downStatus = '全高'
					} else if (this.doorListDown[0].type == 1 && this.doorListDown[0].stationSide == 0) {
						this.downStatus = '半高'
					}
				}
				var num = this.doorList.length
				var numD = this.doorListDown.length
				var yjDoor = []
				// 应急门的数量
				this.doorList.forEach(item => {
					if (item.doorType == 2) {
						yjDoor.push(item)
					}
				})
				this.yjNum = yjDoor.length //应急门的数量
				// 判断上行门的奇数还有偶数
				if (num % 2 == 0) {
					this.avaNum = num / 2
				} else {
					// 如果门的数量是基数
					var obj = {
						dcu: '0',
						doorType: -1,
					}
					var numNew = num + 1
					this.avaNum = numNew / 2
					this.doorList.splice(this.avaNum, 0, obj)
				}
				// 判断下行门的奇数还有偶数
				if (numD % 2 == 0) {
					this.avaNumD = numD / 2
				} else {
					// 如果门的数量是基数
					var obj = {
						dcu: '0',
						doorType: -1,
					}
					var numNew = num + 1
					this.avaNumD = numNew / 2
					this.doorListDown.splice(this.avaNumD, 0, obj)
				}
				callback()
			})
		},
		getSocketData(res) {
			if (res.detail.data) {
				this.init()
			}
		},
		//接收websocket数据
		handleMsg() {
			this.$globalWebSocket.ws.send("psc");
			this.$globalWebSocket.ws.onmessage = this.getMessage
		},
		//获取websocket数据
		getMessage(e) {
			var message = JSON.parse(e.data)
			//正常的
			this.tipStatus = false
			if (message.taskStatus == 1) {
				// A宕机
				this.PSCList[this.PSCList.length - 2].status = 1 //PEDCA通讯
				this.PSCList[this.PSCList.length - 1].status = 0 //PEDCB通讯
				this.PSCList1[this.PSCList1.length - 2].status = 1 //PEDCA通讯
				this.PSCList1[this.PSCList1.length - 1].status = 0 //PEDCB通讯
			} else if (message.taskStatus == 2) {
				//B宕机
				this.PSCList[this.PSCList.length - 2].status = 0 //PEDCA通讯
				this.PSCList[this.PSCList.length - 1].status = 1 //PEDCB通讯
				this.PSCList1[this.PSCList1.length - 2].status = 0 //PEDCA通讯
				this.PSCList1[this.PSCList1.length - 1].status = 1 //PEDCB通讯
			}else if(message.taskStatus == 3){
				this.tipStatus = true
				this.PSCList[this.PSCList.length - 1].status = 1 //PEDC通讯
				this.PSCList[this.PSCList.length - 2].status = 1 //PEDC通讯
				this.PSCList1[this.PSCList1.length - 1].status = 1 //PEDC通讯
				this.PSCList1[this.PSCList1.length - 2].status = 1 //PEDC通讯
				this.msg = 'PEDC命令断开,正在重新连接'
			} else {
				this.PSCList[this.PSCList.length - 2].status = 0 //PEDCA通讯
				this.PSCList[this.PSCList.length - 1].status = 0 //PEDCB通讯
				this.PSCList1[this.PSCList1.length - 2].status = 0 //PEDCA通讯
				this.PSCList1[this.PSCList1.length - 1].status = 0 //PEDCB通讯
			}
			
			//滑动门的状态信息------SysAsd(传输字符串)
			// 上行滑动门的状态
			var door1 = message.upLink.sysAsd.asdOpen //开门到位
			var door2 = message.upLink.sysAsd.asdCloseLocked //关门到位---关闭锁紧
			var door3 = message.upLink.sysAsd.asdCloseLocked //关闭锁紧
			var door4 = message.upLink.sysAsd.asdManualUnlock //手动解锁
			var door5 = message.upLink.sysAsd.asdLcbSeparate //LCB隔离状态
			var door6 = message.upLink.sysAsd.asdClosing //关门过程中
			var door7 = message.upLink.sysAsd.asdOpening //开门过程中
			var door8 = message.upLink.sysAsd.asdOpenBlock //开门遇阻
			var door9 = message.upLink.sysAsd.asdCloseBlock //关门遇阻
			// 下行滑动门的状态
			var door11 = message.downLink.sysAsd.asdOpen //开门到位
			var door22 = message.downLink.sysAsd.asdCloseLocked //关门到位-----关闭锁紧
			var door33 = message.downLink.sysAsd.asdCloseLocked //关闭锁紧
			var door44 = message.downLink.sysAsd.asdManualUnlock //手动解锁
			var door55 = message.downLink.sysAsd.asdLcbSeparate //LCB隔离状态
			var door66 = message.downLink.sysAsd.asdClosing //关门过程中
			var door77 = message.downLink.sysAsd.asdOpening //开门过程中
			var door88 = message.downLink.sysAsd.asdOpenBlock //开门遇阻
			var door99 = message.downLink.sysAsd.asdCloseBlock //关门遇阻
			
			
			// 端门信息
			var dm1 = message.upLink.sysMsd.endHeadDoor //端头门锁闭
			var dm2 = message.upLink.sysMsd.endTailDoor //端尾门锁闭
			var dm11 = message.downLink.sysMsd.endHeadDoor //端头门锁闭
			var dm22 = message.downLink.sysMsd.endTailDoor //端尾门锁闭
			//上下行应急门信息1-8
			var yjInfo = []
			var yjrInfo = []
			var yjInfo1 = []
			var yjrInfo1 = []
			for (var i = 0; i < this.yjNum; i++) {
				var edata = this.getEnglish(i + 1)
				yjInfo.push(message.upLink.sysEed[`${edata}` + 'EedLeft'])
				yjrInfo.push(message.upLink.sysEed[`${edata}` + 'EedRight'])
			}
			for (var i = 0; i < this.yjNum; i++) {
				var edata = this.getEnglish(i + 1)
				yjInfo1.push(message.downLink.sysEed[`${edata}` + 'EedLeft'])
				yjrInfo1.push(message.downLink.sysEed[`${edata}` + 'EedRight'])
			}
			
			var yjmpl = message.upLink.sysEed.emergencyDoorBypassSwitch //上行应急门旁路开关
			var yjmpldown = message.downLink.sysEed.emergencyDoorBypassSwitch //下行应急门旁路开关
			//门的故障----电磁锁故障，电机驱动器故障对应DCU没有值
			var g1 = message.upLink.sysAsd.asdOpenBlock //开门遇阻
			var g2 = message.upLink.sysAsd.asdCloseBlock //关门遇阻
			var g3 = message.upLink.sysAsd.asdOpenFaultAlarm //开门故障
			var g4 = message.upLink.sysAsd.asdCloseFaultAlarm //关门故障
			var g5 = this.GLInfo(this.doorList, message.dcuMap, 1) //左电磁锁故障
			var g6 = this.GLInfo(this.doorList, message.dcuMap, 2) //右电磁锁故障
			var g7 = this.GLInfo(this.doorList, message.dcuMap, 0) //电机驱动器温度异常故障
			var t1 = this.GLInfo(this.doorList, message.dcuMap, 3) //自学习状态
			var t2 = this.GLInfo(this.doorList, message.dcuMap, 4) //有无应急门 
			
			var g11 = message.downLink.sysAsd.asdOpenBlock //开门遇阻
			var g22 = message.downLink.sysAsd.asdCloseBlock //关门遇阻
			var g33 = message.downLink.sysAsd.asdOpenFaultAlarm //开门故障
			var g44 = message.downLink.sysAsd.asdCloseFaultAlarm //关门故障
			var g55 = this.GLInfo(this.doorListDown, message.dcuMap, 1, 0) //左电磁锁故障
			var g66 = this.GLInfo(this.doorListDown, message.dcuMap, 2, 0) //右电磁锁故障
			var g77 = this.GLInfo(this.doorListDown, message.dcuMap, 0, 0) //电机驱动器温度异常故障
			
			var t11 = this.GLInfo(this.doorListDown, message.dcuMap, 3, 0)//自学习状态
			var t22 = this.GLInfo(this.doorListDown, message.dcuMap, 4, 0)//自学习状态
			var obj = {
				s1: door1,
				s2: door2,
				s3: door3,
				s4: door4,
				s5: door5,
				s6: door6,
				s7: door7,
				s8: door8,
				s9: door9,
				dm1: dm1,
				dm2: dm2,
				yjInfo: yjInfo,
				yjrInfo: yjrInfo,
				yjmpl: yjmpl,
				g1: g1,
				g2: g2,
				g3: g3,
				g4: g4,
				g5: g5,
				g6: g6,
				g7: g7,
				t1:t1,
				t2:t2,
				doorArr: this.doorList,
			}
			var obj1 = {
				s1: door11,
				s2: door22,
				s3: door33,
				s4: door44,
				s5: door55,
				s6: door66,
				s7: door77,
				s8: door88,
				s9: door99,
				dm1: dm11,
				dm2: dm22,
				yjInfo: yjInfo1,
				yjrInfo: yjrInfo1,
				yjmpl: yjmpldown,
				g1: g11,
				g2: g22,
				g3: g33,
				g4: g44,
				g5: g55,
				g6: g66,
				g7: g77,
				t1:t11,
				t2:t22,
				doorArr: this.doorListDown.reverse(), //下行数据倒叙-----后端传的是正序
			}
			this.getdoorInfo(obj)
			this.getdoorInfo(obj1, 1)
			//应急门的告警信息 -------SysEed
			// 电池故障的显示
			this.MLinfo(this.homeDianList, message.pscPower)
			// 上下行数据的IBP命令
			this.MLinfo(this.IBPList, message.upLink.sysIbpReservePanel)
			this.MLinfo(this.IBPList1, message.downLink.sysIbpReservePanel)
			// IBP预警参数
			this.IBPWaringContent = message.upLink.sysIbpReservePanel.ibpAlarm
			this.IBPWaringContentDown = message.downLink.sysIbpReservePanel.ibpAlarm
			
			//上下行数据的PSL命令
			this.MLinfo(this.PSLList1Up, message.upLink.sysPslControlPanel)
			this.MLinfo(this.PSLList2Up, message.upLink.sysPslControlPanel)
			this.MLinfo(this.PSLList3Up, message.upLink.sysPslControlPanel)
			this.MLinfo(this.PSLList1Down, message.downLink.sysPslControlPanel)
			this.MLinfo(this.PSLList2Down, message.downLink.sysPslControlPanel)
			this.MLinfo(this.PSLList3Down, message.downLink.sysPslControlPanel)
			//PSL的预警
			this.PSLWaringContent1 = message.upLink.sysPslControlPanel.psl1Alarm
			this.PSLWaringContent2 = message.upLink.sysPslControlPanel.psl2Alarm
			this.PSLWaringContent3 = message.upLink.sysPslControlPanel.psl3Alarm
			this.PSCWaringContentDown1 = message.downLink.sysPslControlPanel.psl1Alarm
			this.PSCWaringContentDown2 = message.downLink.sysPslControlPanel.psl2Alarm
			this.PSCWaringContentDown3 = message.downLink.sysPslControlPanel.psl3Alarm
			
			//上下行数据的SIG命令
			this.MLinfo(this.SIGList, message.upLink.sysSigSystem)
			this.MLinfo(this.SIGList1, message.downLink.sysSigSystem)
			//上下行数据的PSC信息
			this.MLinfo(this.PSCList, message.upLink.sysPscCenterControlPanel)
			this.MLinfo(this.PSCList1, message.downLink.sysPscCenterControlPanel)
			//PSC的预警参数
			this.PSCWaringContent = message.upLink.sysPscCenterControlPanel.pscAlarm
			this.PSCWaringContentDown = message.downLink.sysPscCenterControlPanel.pscAlarm
			//安全回路故障显示
			this.safeInfo(this.doorListSafe, message.dcuMap) //上行安全回路显示
			this.safeInfo(this.doorListDownSafe, message.dcuMap) //下行回路显示
		},
		//安全回路的显示
		safeInfo(Arr, ObjArr) {
			var newArr = []
			var dcuID = ''
			Arr.forEach(item => {
				Object.keys(ObjArr).forEach(val => {
					if (val < 127) {
						//上行
						dcuID = Number(val) + this.stepUp
					} else {
						// //下行
						dcuID = (Number(val) - 128) + this.stepDown //下行对应是大于129 （129-128） 为第一个门对应101
					}
					if (Number(item.dcu) === Number(dcuID)) {
						item.collection1 = ObjArr[val].collection1
						item.collection2 = ObjArr[val].collection2
					}
				})
			})
			return Arr
		},
		// 中文换算
		getEnglish(n) {
			switch (n) {
				case 1:
					return 'one'
					break;
				case 2:
					return 'two'
					break;
				case 3:
					return 'three'
					break;
				case 4:
					return 'four'
					break;
				case 5:
					return 'five'
					break;
				case 6:
					return 'six'
					break;
				case 7:
					return 'seven'
					break;
				case 8:
					return 'eight'
					break;
				default:
				// 与 case 1 和 case 2 不同时执行的代码
			}
		},
		//根据数组回显命令的信息的状态
		MLinfo(Arr, ObjArr) {
			Arr.forEach(item => {
				Object.keys(ObjArr).forEach(val => {
					if (item.FName === val) {
						item.status = ObjArr[val]
					}
				})
			})
		},
		//电磁锁故障和电机驱动器温度异常故障
		GLInfo(Arr, ObjArr, num, status) {
			var newArr = []
			var dcuID = ''
			Arr.forEach(item => {
				Object.keys(ObjArr).forEach(val => {
					if (val < 127) {
						//上行
						dcuID = Number(val) + this.stepUp
					} else {
						// //下行
						dcuID = (Number(val) - 128) + this.stepDown //下行对应是大于129 （129-128） 为第一个门对应101
					}
					if (item.doorType == 1) { //滑动门
						if (Number(item.dcu) === Number(dcuID)) {
							if (num == 0) {
								var n = ObjArr[val].motorDriverTempStatus == 2 ? 1 : 0//正常01异常10 ---2023年2月8日修改
								newArr.push(n) //电机驱动异常的数组
							} else if (num == 1) {
								newArr.push(ObjArr[val].leftElecLockFault) //左电磁锁的数组
							} else if (num == 2) {
								newArr.push(ObjArr[val].rightElecLockFault) //右电磁锁的数组
							}else if(num==3){
								var autoLearningStatus = ObjArr[val].autoLearningStatus == "2" ? 1 : 0;
								newArr.push(autoLearningStatus) //自学习状态
							}else if(num == 4){
								newArr.push(ObjArr[val].isHaveEmergencyDoor) //有无应急门
							}

						} else {
							newArr.push(-1)
						}
						// else if (val !== '端头门' || val !== '端尾门' || val !== 'E101' || val !== 'E102' ||
						// 	val !== 'E103' || val !== 'E104' || val !== 'E105' || val !== 'E106' || val !==
						// 	'E107' || val !== 'E108'||val !== 'E201'||val !== 'E202'||val !== 'E203'||val !== 'E204'||val !== 'E205'||val !== 'E206'||val !== 'E207'||val !== 'E208') {
						// 	newArr.push(-1)
						// 	//这块数据后台就不应该存入(要不然前端没法删除)
						// }
					}
				})

			})
			if (status == 0) {
				return newArr.reverse()
			} else {
				return newArr
			}
		},
		//电磁锁故障和电机驱动器温度异常故障
		GLInfo1(Arr, ObjArr, num, status) {
			var newArr0 = []
			var newArr1 = []
			var newArr2 = []
			var newArr3 = []
			var newArr4 = []
			var newArr5 = []
			var newArr01 = []
			var newArr11 = []
			var newArr21 = []
			var newArr31 = []
			var newArr41 = []
			var newArr51 = []
			var dcuID = ''
			var dcuIndexUP = []
			var dcuIndexDown = []
			for(var i=0;i<41;i++){
				newArr0.push(-1)
				newArr1.push(-1)
				newArr2.push(-1)
				newArr4.push(-1)
				newArr5.push(-1)
				newArr01.push(-1)
				newArr11.push(-1)
				newArr21.push(-1)
				newArr41.push(-1)
				newArr51.push(-1)
			}
			Object.keys(ObjArr).forEach(val => {
				if (val < 127) {
					dcuIndexUP.push(val)
				} else {
					dcuIndexDown.push((Number(val) - 128))
				}
			})
			dcuIndexUP.forEach((item,index)=>{
				if (num == 0) {
					newArr0[item-1] = ObjArr[item].motorDriverTempStatus == 2 ? 1 : 0//正常01异常10 ---2023年2月8日修改
				} else if (num == 1) {
					newArr1[item-1] = ObjArr[item].leftElecLockFault
				} else if (num == 2) {
					newArr2[item-1] = ObjArr[item].rightElecLockFault
				}else if(num==3){
					newArr3[item-1] = ObjArr[item].autoLearningStatus == "2" ? 1 : 0;
				}else if(num == 4){
					newArr3[item-1] = ObjArr[item].isHaveEmergencyDoor
				}
			})
			dcuIndexDown.forEach((item,index)=>{
				var key = Number(item + 128) 
				if (num == 0) {
					newArr01[item-1] = ObjArr[key].motorDriverTempStatus == 2 ? 1 : 0//正常01异常10 ---2023年2月8日修改
				} else if (num == 1) {
					newArr11[item-1] = ObjArr[key].leftElecLockFault
				} else if (num == 2) {
					newArr21[item-1] = ObjArr[key].rightElecLockFault
				}else if(num==3){
					newArr31[item-1] = ObjArr[key].autoLearningStatus == "2" ? 1 : 0;
				}else if(num == 4){
					newArr31[item-1] = ObjArr[key].isHaveEmergencyDoor
				}
			})
			if (status == 0) {
				if (num == 0) {
				    return newArr01
				} else if (num == 1) {
					return newArr11
				} else if (num == 2) {
					return newArr21
				}else if(num==3){
					return newArr31
				}else if(num == 4){
					return newArr41
				}
			} else {
				if (num == 0) {
				    return newArr0
				} else if (num == 1) {
					return newArr1
				} else if (num == 2) {
					return newArr2
				}else if(num==3){
					return newArr3
				}else if(num == 4){
					return newArr4
				}
			}
		},
		// 根据返回的门的字符串信息获取门的状态的优先级和状态值
		getdoorInfo(data, down) {
			let doorListHD = [] //41个滑动门的数组
			let dmdoor = [] //端门信息
			let yjdoor = [] //应急门
			data.doorArr.forEach(item => {
				if (item.doorType == 1) {
					doorListHD.push(item)
				} else if (item.doorType == 0) {
					dmdoor.push(item)
				} else if (item.doorType == 2) {
					yjdoor.push(item)
				}
			})

			//数组中push状态值和故障值
			doorListHD.forEach((val, index) => {
				val.asdOpen = data.s1.split('')[index] //开门到位
				val.asdCloseLocked = data.s2.split('')[index] //关门到位---关闭锁紧
				val.asdCloseLocked = data.s3.split('')[index] //关闭锁紧
				val.asdManualUnlock = data.s4.split('')[index] //手动解锁
				val.asdLcbSeparate = data.s5.split('')[index] //LCB隔离状态
				val.asdClosing = data.s6.split('')[index] //关门过程中
				val.asdOpening = data.s7.split('')[index] //开门过程中
				val.asdOpenBlock = data.s8.split('')[index] //开门遇阻
				val.asdCloseBlock = data.s9.split('')[index] //关门遇阻
				val.asdOpenFaultAlarm = data.g3.split('')[index] //开门故障
				val.asdCloseFaultAlarm = data.g4.split('')[index] //关门故障
				val.leftLockFault = data.g5[index] //左电磁锁故障
				val.rightLockFault = data.g6[index]//右电磁锁故障
				val.temperatureAbnormal = data.g7[index]  //电机驱动异常的数组

			});
			var vZ = [data.s1.split(''), data.s2.split(''), data.s3.split(''), data.s4.split(''), data.s5.split(''),
			data.s6.split(''), data.s7.split(''), data.s8.split(''), data.s9.split('')
			]; //重组状态的二维数组
			var gZ = [data.g1.split(''), data.g2.split(''), data.g3.split(''), data.g4.split(''), data.g5, data.g6,
			data.g7
			]; //重组故障的二维数组
			var key = [2, 1, 3, 9, 8, 4, 5, 6, 7] //状态的优先级
			var key1 = [1, 2, 4, 3, 5, 6, 7] //故障的优先级
			const fanimalArr = [
				[]
			] //记录有状态的门的状态的下标,优先级,状态的个数
			const fanimalArrG = [
				[]
			] //记录有故障的门的状态的下标,优先级,状态的个数
			//41个滑动门的状态和故障的信息
			for (var j = 0; j < doorListHD.length; j++) {
				fanimalArr[j] = []
				fanimalArrG[j] = []
				var num = 1
				var numG = 1
				for (var i = 0; i < key.length; i++) {
					if (vZ[i][j] == 1) {
						var obj = {
							statusZ: i, //门的状态下标
							key: key[i], //门的状态优先级
							statusNum: num++, //状态的个数
						}
						fanimalArr[j].push(obj)
					} else if (vZ[i][j] == 0 && i == 7 || vZ[i][j] == 0 && i == 8) {
						var obj = {
							statusZ: i, //门的状态下标
							key: 0, //门的状态优先级
							statusNum: num, //状态的个数
						}
						fanimalArr[j].push(obj)
					}
				}
				if (gZ.length !== 0) {
					for (var i = 0; i < key1.length; i++) {
						if (gZ[i][j] == 1) {
							var obj = {
								statusGIndex: i, //门的故障状态下标
								key: key1[i], //故障的优先级
								statusGNum: numG++, //门故障的个数
							}
							fanimalArrG[j].push(obj)
						}
					}
				}
			}
			//重组doorList滑动门的信息
			doorListHD.forEach((item, index) => {
				this.$set(doorListHD[index], 'status', 1); //滑动门的状态1表示状态值
				this.$set(doorListHD[index], 'statusList', fanimalArr[index]); //每个滑动门的下的状态数组
				this.$set(doorListHD[index], 'statusGList', fanimalArrG[index]); //每个滑动门的下的故障数组
				if (fanimalArrG[index].length == 0) { //每个滑动门如果故障数组为0则没有故障只显示状态
					this.$set(doorListHD[index], 'statusG', 0); //statusG为故障状态为0
					this.$set(doorListHD[index], 'statusNum', fanimalArr[index].length - 2); //右上角显示状态的个数
				} else {
					this.$set(doorListHD[index], 'statusG', 1); //statusG为故障状态为1
					this.$set(doorListHD[index], 'statusGNum', fanimalArrG[index].length); //右上角显示故障的个数
				}
				//显示每个门当前状态下的优先级高的门的状态
				if (fanimalArr[index].length !== 0) {
					var max = fanimalArr[index][0].key //定义初始门的key
					fanimalArr[index].forEach((val, num) => {
						if (fanimalArr[index][num].key > max) {
							max = fanimalArr[index][num].key
							const mMax = fanimalArr[index][num].statusZ; //记录最大值的index的下标
							this.$set(doorListHD[index], 'statusZ', mMax);
						} else if (num == 0) {
							this.$set(doorListHD[index], 'statusZ', fanimalArr[index][0].statusZ);
						}
					})
				}
			})

			//重组端门信息
			dmdoor.forEach((item, index) => {
				if (index == 0) {
					this.$set(dmdoor[index], 'status', data.dm1);
				} else {
					this.$set(dmdoor[index], 'status', data.dm2);
				}

			})

			//重组应急门信息
			yjdoor.forEach((item, index) => {
				data.yjInfo.forEach((val, num) => {
					this.$set(yjdoor[index], 'statuslf', data.yjInfo[index]);
				})
				data.yjrInfo.forEach((val, num) => {
					this.$set(yjdoor[index], 'statusrg', data.yjrInfo[index]);
				})
				var yjmpl = data.yjmpl.split('');
				yjmpl.forEach((val, num) => {
					this.$set(yjdoor[index], 'statusyjmpl', yjmpl[index]);
				})
			})
			if (down == 1) {
				this.doorListDown.reverse() //下行数据倒叙
			}
		},
		//鼠标在弹窗上---解决弹窗闪烁的问题
		tanchuangmouse() {
			this.dialogStatus = true
		},
		//鼠标在弹窗上---解决弹窗闪烁的问题
		tanchuangmouse1() {
			this.dialogStatus = false
			this.doorStatus = false
		},
		//弹窗的位置显示
		updateXY(event) {
			var screenWidth = document.body.clientWidth
			var JX = screenWidth - event.clientX
			var xAll = this.mouse_x + 400 - screenWidth //差值
			this.mouse_x = event.pageX;
			this.mouse_y = event.pageY;
			if (JX < 300) {
				this.sty = {
					top: (this.mouse_y - 5) + 'px',
					left: (this.mouse_x - xAll) + 'px'
				};
			} else {
				this.sty = {
					top: (this.mouse_y - 5) + 'px',
					left: (this.mouse_x - 5) + 'px'
				};
			}
		},
		// 门滑动的效果
		doorHover(item, index, number) {
			this.doorIndex = index; //记录当前滑过门的下标
			this.doorDeNum = number //记录当前门的方向
			this.doorStatus = true
			this.doorNum = item.dcu
			if (item.dcu !== '0' && item.doorType == 1) { //去除页面中多加的数据dcu为0的
				this.$nextTick(() => {
					this.dmStatus = false
					this.yjStatus = false
					if (item.statusG == 1) {
						//故障码显示
						this.Gstatus = true
						this.Tstatus = false
						if (item.statusGList && item.statusGList.length !== 0) {
							//重新赋值
							this.doorBaseInfoC2.forEach(item => {
								item.status = 0
							})
							//数组显示
							item.statusGList.forEach(itemG => {
								this.$set(this.doorBaseInfoC2[itemG.statusGIndex], 'status', 2);
							})
						}
					} else {
						this.doorBaseInfoC1 = []
						this.Tstatus = true
						this.Gstatus = false
						this.homeTuStListAll.forEach(val => {
							var obj = {
								name: val.name,
								key: val.status,
								status: 0
							}
							this.doorBaseInfoC1.push(obj)
						})
						var newObj ={
							name: '自学习',
							key: -1,
							status: 0
						}
						var newObj1 ={
							name: '有无应急门',
							key: -1,
							status: 0
						}
						this.doorBaseInfoC1.push(newObj,newObj1)
						if (item.statusList && item.statusList.length !== 0) {
							item.statusList.forEach(item => {

								this.doorBaseInfoC1.forEach((val, index) => {
									if (item.statusZ == val.key && item.statusZ !== 7 && item
										.statusZ !== 8) {
										this.$set(this.doorBaseInfoC1[index], 'status', 1);
										// this.doorBaseInfoC1[index].status = 1
									} else if (item.statusZ == val.key && (item.statusZ == 7 ||
										item.statusZ == 8)) {
										this.$set(this.doorBaseInfoC1[index], 'status', 0);
									}
								});
							})
						}
					}
				})
			} else if (item.doorType == 0) {
				this.Gstatus = false
				this.Tstatus = false
				this.dmStatus = true
				this.yjStatus = false

				this.dm1Status = item.status
			} else if (item.doorType == 2) {
				this.Gstatus = false
				this.Tstatus = false
				this.dmStatus = false
				this.yjStatus = true
				this.yjStatus1 = item.statuslf
				this.yjStatus2 = item.statusrg
				this.yjmplStatus = item.statusyjmpl
			}
			if (number == 0) {
				this.doorDe = '下行'
			} else {
				this.doorDe = '上行'
			}
		},
		//门离开的效果
		doorLeave(item, number) {
			if (this.dialogStatus) {
				this.doorStatus = true
				this.dialogStatus = false //在弹窗上划入但是没有滑出
			} else {
				this.doorStatus = false
				this.$nextTick(() => {
					this.doorNum = ''
					this.doorDe = ''
				})
				this.dialogStatus = false
			}

		},
		//点击单门的信息
		doorInfo(dcu, doorType, stationDe) {
			this.$router.push({
				path: '/doorInfo/index',
				query: {
					doorType: doorType,
					stationDe: stationDe,
					stationN: this.stationName,
					doorDcu: dcu,
				}
			})
		},
		//点击安全回路
		safeContentShow(index, station) {
			if (index == 3) {
				this.safeStatus = true;
				this.$nextTick(() => {
					this.$refs.safeContent.init(station, this.doorListSafe, this.doorListDownSafe)
				})
			}
		}
	}
}
</script>

<style scoped>
.mod-home {
	line-height: 1.5;
}

.home-header {
	height: 5.5vh;
	line-height: 5.5vh;
	background-color: #fff;
	text-align: center;
	/* font-size: 37px; */
	font-size: 32px;
	font-weight: 900;
	letter-spacing: 9px;
	color: rgba(42, 130, 228, 1);
	border-radius: 10px;
	margin-bottom: 10px;
}

.home-tuli {
	height: 7.6vh;
	min-height: 76px;
	padding: 0 16px;
	background-color: #fff;
	border-radius: 10px;
	margin-right: 10px;
	display: flex;
	align-items: center;
}

.home-tuli1 {
	margin-right: 0 !important;
}

.homeTuTxt {
	width: 16px;
	font-size: 14px;
	font-weight: 700;
	word-wrap: break-word;
	word-break: normal;
	color: rgba(42, 130, 228, 1);
}

.homeTuSt {
	display: flex;
	flex-direction: column;
	margin-left: 1.5vw;
}

.homeTuSt1,
.homeTuSt2 {
	color: #fff;
	padding: 2px 16px;
	background: rgba(67, 207, 124, 1);
	border-radius: 5px;
	font-size: 12px;
	text-align: center;
	width: 80px;
	display: block;
}

.homeTuSt2 {
	background: rgba(128, 128, 128, 1);
	margin-top: 5px;
}

.homeTuStList,
.homeDY {
	margin-left: 1.5vw;
}

.homeTuStList ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	justify-content: space-evenly;
}

.homeTuStList ul li {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	/* margin-right: 28px; */
}

.homeTuStListLi {
	/* width: 32px; */
	height: 100%;
}

.homeTuStListLi img {
	width: 26px;
}

.homeTuStListLi span {
	margin-top: 4px;
	font-size: 14px;
}

.homeTuTxt1 {
	font-size: 14px;
	line-height: 16px;
}

.homeDY {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
}

.homeDY ul {
	width: 100%;
	height: 100%;
	list-style: none;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	padding: 0;
	margin: 0;
}

.homeDY ul li {
	/* width: 33%; */
	background: rgba(166, 166, 166, 1);
	padding: 3px 15px;
	font-size: 14px;
	color: #fff;
	border-radius: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 10px;
}

.active {
	background: rgba(212, 48, 48, 1) !important;
	/* background-image: radial-gradient(#fff,rgba(212, 48, 48, 1),rgba(212, 48, 48, 1))!important; */
}

.homeSH {
	width: 100%;
	height: 16.6vh;
	min-height: 133px;
	background: #fff;
	margin-top: 10px;
	border-radius: 10px;
	padding: 1vh 1vw;
}

.homeSHTxt {
	margin: 0;
	font-size: 1.5vw;
	font-weight: 700;
	color: rgba(42, 130, 228, 1);
}

.homeSH1 {
	display: flex;
	flex-wrap: wrap;
	padding: 0vw 0.2vh;
	padding-bottom: 0;
}

.homeSH2 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	/* margin-right: 18px; */
	width: 3.8%;
	height: 5.5vh;
	min-height: 55px;
	font-size: 12px;
	cursor: pointer;
}

/* .homeSH1 .homeSH2:nth-child(27) {
		opacity: 0;
	} */

/* .homeSH1 .homeSH2:nth-child(26) span {
		opacity: 0;
	} */

.door1 {
	flex-direction: column-reverse;
}

.homeSH2 img {
	width: 26px;
}

/* 故障显示 */
.item>>>.el-badge__content {
	background: rgba(212, 48, 48, 1);
}

/* 状态显示 */
.item1>>>.el-badge__content {
	background: rgba(67, 207, 124, 1);
}

.homeSH1 .homeSH2:first-child img,
.homeSH1 .homeSH2:last-child img {
	width: 20px;
}

.homeSHM {
	display: flex;
	align-items: center;
	height: 19.2vh;
	min-height: 157px;
}

.homeTuStList {
	display: flex;
}

.homeTuStList1,
.homeTuStList2 {
	width: 10.3vw;
	min-width: 100px;
	height: 17vh;
	min-height: 159px;
	margin-right: 0.9vw;
	border-radius: 10px;
	border: 1px solid rgba(42, 130, 228, 1);
	position: relative;
}

.homeTuStList2 {
	/* width: 17.4vw; */
	width: 26%;
	height: 17vh;
}

.homeTuStList11 {
	text-align: center;
	font-size: 16px;
	font-weight: 700;
	color: rgba(0, 65, 135, 1);
	margin: 0px auto;
}

.homeTuStList12 {
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	align-items: center;
	height: calc(100% - 24px);

}

.homeTuStList2 .homeTuStList12 {
	display: flex;
	flex-direction: inherit;
	/* justify-content: flex-start; */
	justify-content: center;
	flex-wrap: wrap;
	padding: 10px;
}

.homeTuStList13 {
	background: rgba(166, 166, 166, 1);
	color: #fff;
	border-radius: 5px;
	padding: 0.4vw 0.7vh;
	font-size: 12px;
	/* margin-bottom: 0.3vh; */
	cursor: pointer;
}

.PSLBtn {
	border: none;
}

.homeTuStList2 .homeTuStList13 {
	padding: 0.4vw 1vh;
	/* margin-bottom: 1.4vh; */
	margin-right: 0.5vw;
	font-size: 14px;
	text-align: center;
	width: 48%;
}

.PSCWidth1 .homeTuStList13:nth-child(2n+1) {
	width: 47%;
}

.PSCWidth1 .homeTuStList13:nth-child(2n) {
	width: 47%;
}


.homeTuStList3 .homeTuStList13 {
	font-size: 14px;
	/* margin: auto; */
}

.homeTuStList3 .homeTuStList12 {
	/* height: 78%; */
}

.homeTuStList2 .homeTuStList13:nth-child(2n) {
	margin-right: 0 !important;
}

/* .homeTuStList2 .homeTuStList13:nth-child(5) {
		margin-right: 24px;
	} */

.IBPactive {
	background: rgba(67, 207, 124, 1) !important;
	/* background-image:radial-gradient(#fff, #09D891,#09D891)!important; */
}

.homewarn {
	position: absolute;
	right: 0.5vw;
	top: 0.1vw;
	width: 1.25vw;
	height: 1.25vw;
	cursor: pointer;
}

.doorBaseInfo {
	width: 25.4vw;
	min-width: 260px;
	padding: 1.3vh 1.5vw;
	height: 20vh;
	min-height: 200px;
	border-radius: 10px;
	background: rgba(0, 0, 0, 0.6);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-12.7vw, -2.5vh);
}

.doorBaseInfoH {
	display: flex;
	justify-content: center;
	font-size: 16px;
	font-weight: 400;
	color: rgba(255, 255, 255, 1);
}

.doorBaseInfoH div {
	width: 50%;
	display: flex;
	justify-content: flex-start;
}

.doorBaseInfoH1 {
	width: 7.25vw;
	min-width: 84px;
	display: block;
}

.doorBaseInfoH2 {
	width: 4.25vw;
	display: block;
}

.doorBaseInfoC {
	display: flex;
	font-size: 14px;
	font-weight: 400;
	margin-top: 1.6vh;
	color: rgba(255, 255, 255, 1);
	height: calc(100% - 24px);
}

.doorBaseInfoN1 {
	position: relative;
	padding-left: 2vw;
	/* margin-bottom: 0.4vh; */
	height: 1.2vw;
	display: flex;
	align-items: center;
}

.doorBaseInfoNTxt {
	/* position: relative; */
	padding-right: 10px;
	/* margin-bottom: 0.4vh; */
	/* height: 1.2vw; */
	/* display: flex; */
	/* align-items: center; */
	/* margin-top: -2px; */
}

.doorBaseInfoN1:before {
	content: '';
	width: 1vw;
	height: 1vw;
	border-radius: 100px;
	background: rgba(229, 229, 229, 1);
	position: absolute;
	left: 0;
	top: 2px;
}

.doorBaseInfoNA:before {
	background-image: radial-gradient(#fff, #09D891, #09D891) !important;
	/* background: rgba(9, 216, 145, 1) !important; */
}

.doorBaseInfoNB:before {
	/* background: rgba(212, 48, 48, 1) !important; */
	background-image: radial-gradient(#fff, rgba(212, 48, 48, 1), rgba(212, 48, 48, 1)) !important;
}

.doorBaseInfolf,
.doorBaseInfoRg {
	width: 100%;
	display: flex;
	/* padding-right: 0.78vw; */
	/* height: 8.75vh; */
	flex-direction: initial;
	flex-wrap: wrap;
	justify-content: space-between;
	/* border-right: 1px solid rgba(255, 255, 255, 1); */
}

.doorBaseInfolf .doorBaseInfoN1,
.doorBaseInfoRg .doorBaseInfoN1 {
	width: 50%;
}

.doorBaseInfoNG:last-child {
	width: 100% !important;
}

.doorBaseInfoNG1:nth-child(6) {
	opacity: 0 !important;
}

.doorBaseInfoRg {
	/* padding-left: 0.9vw; */
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	/* height: 8.75vh; */
	justify-content: space-between;
}

.opcity1 {
	opacity: 0 !important;
}

.PSLW {
	width: 20% !important;
}

.PSL12 {
	padding: 5px !important;
}

.PSLNew {
	padding: 0.2vw 2px !important;
	margin-right: 0.2vw !important;
	width: 49%;
}

.PSLNew2 {
	padding: 0.2vw 2px !important;
}

.PSLNew1 {
	padding: 0.2vw 0.4vh !important;
}

.PSLNew3 {
	padding: 0.2vw 2px !important;
	/* width: 60%; */
}

.PSLNew3:nth-child(2n+1) {
	width: 56%;
}

.PSLNew3:nth-child(2n) {
	width: 39%;
}

.PSLNew3:nth-child(5) {
	margin-right: 0.5vw !important;
}

.SIGWidth {
	width: 8.3vw !important;
}

.PSCWidth {
	width: 14.4vw !important;
	margin-right: 0px !important;
}

.PSCWidth1 {
	/* width: 15.4vw !important; */
}

.tipContent {
	position: fixed;
	top: 0px;
	height: 50px;
	line-height: 50px;
	z-index: 999999;
	width: 50%;
	margin-left: 20%;
	text-align: center;
}

.tipsTxt {
	color: red;
	font-weight: 600;
	font-size: 20px;
	width: 250px;
	margin: 0 auto;
}

.tipsTxt>>>.marquee-wrap,
.tipsTxt>>>.scroll {
	height: 50px;
}

.tipsTxt>>>.marquee,
.tipsTxt>>>.copy {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.tipsTxt>>>.getWidth {
	margin: 0 !important;
}

/* .doorBaseInfoRg .doorBaseInfoN1:nth-child(2n+1){
		margin-right: 1vw;
	} */
.SIGList {
	padding: 10px;
}

/* 文字滚动 */
.merquee {
	height: 50px;
	line-height: 50px;
	box-sizing: border-box;
	word-break: break-all;
	white-space: nowrap;
	overflow: hidden;
}

.merquee-txt {
	display: inline-block;
	padding-left: 100%;
	/* 从右至左开始滚动 */
	animation: marqueeTransform 16s linear infinite;
}

.safeBtn {
	position: relative;
	background: linear-gradient(0deg, rgba(255, 27, 0, 1) 0%, rgba(212, 48, 48, 1) 100%) !important;
	box-shadow: inset 2px 2px 2px 0px rgb(255 255 255 / 50%), 7px 7px 20px 0px rgb(0 0 0 / 10%), 4px 4px 5px 0px rgb(0 0 0 / 50%);
}

.safeBtn::before,
.safeBtn::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	height: 2px;
	width: 0;
	background: #f0094a;
	box-shadow: -1px -1px 5px 0px #fff, 7px 7px 20px 0px #0003, 4px 4px 5px 0px #0002;
}

@keyframes marqueeTransform {
	0% {
		transform: translate(0, 0);
	}

	100% {
		transform: translate(-100%, 0);
	}
}

@media screen and (min-width:1920px) {
	.homeTuStList2 .homeTuStList13 {
		width: 47%;
		text-align: center;
	}

	.homeTuStList2 .homeTuStList13:nth-child(5) {
		margin-right: 0.5vw;
	}
}

@media screen and (max-width:1280px) {
	.homeTuStList2 .homeTuStList13 {
		font-size: 12px;
	}

	.homeTuStList3 .homeTuStList13 {
		font-size: 12px;
	}

	.homeDY ul li {
		font-size: 12px;
	}

	.homeTuStListLi span {
		font-size: 12px;
	}
}
</style>
